Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

413
Visualizações
Obtenga una vista previa de una "pantalla" en la navegación de composición de jetpack de Android con un PreviewParameter NavController

Descubro Android Cetpack Compose (y Navigation) e intento mostrar una vista previa de una vista con un navController como parámetro.

Para lograrlo, uso PreviewParameter y no tengo ningún error, pero no aparece nada en la ventana de vista previa.

¿Alguien sabe cómo pasar una instancia falsa de NavController a Composable?

 class FakeNavController : PreviewParameterProvider<NavController> { override val values: Sequence<NavController> get() {} } @Preview @Composable fun Preview( @PreviewParameter(FakeNavController::class) fakeNavController: NavController ) { HomeView(fakeNavController) }
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

PreviewParameter se usa para crear múltiples vistas previas de la misma vista con diferentes datos. Se espera que devuelva los valores necesarios de values . En su ejemplo, no devuelve nada, por eso no funciona (ni siquiera se compila en mi caso).

Eso no lo ayudará a simular el controlador de navegación, ya que aún necesita crearlo de alguna manera para regresar de values . creo que es imposible

En su lugar, puede pasar un controlador, en este caso no necesita burlarse de él:

 @Composable fun HomeView(openOtherScreen: () -> Unit) { } // your Navigation view composable(Destinations.Home) { from -> HomeView( openOtherScreen = { navController.navigate(Destinations.Other) }, ) }
over 4 years ago · Santiago Trujillo Relatório

0

No tienes que hacerlo anulable y pasarle nulo. Solo necesitas pasar esto: rememberNavController()

 @Preview @Composable fun Preview() { HomeView(rememberNavController()) }
over 4 years ago · Santiago Trujillo Relatório

0

Finalmente, declaro un NavController anulable y funciona.

 @Composable fun HomeView(navController: NavController?) { Surface { Column( modifier = Modifier .padding(all = 4.dp) ) { Text( text = "Home View", style = MaterialTheme.typography.body2 ) Spacer(modifier = Modifier.height(8.dp)) Button(onClick = { navController?.navigate("lineRoute") }) { Text(text = "nav to Line view") } } } } @Preview @Composable fun Preview (){ HomeView(null) }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda